<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/12/5 0005
 * Time: 11:29
 */
header("Content-Type: text/html;charset=utf-8");

/************************************************验证token*************************************************************/
$timestamp = $_GET['timestamp'];
$nonce = $_GET['nonce'];
$token = "mytoken";
$signature = $_GET['signature'];
$array = array($timestamp,$nonce,$token);
sort($array);
//2.将排序后的三个参数拼接后用sha1加密
$tmpstr = implode('',$array);
$tmpstr = sha1($tmpstr);

//3. 将加密后的字符串与 signature 进行对比, 判断该请求是否来自微信
if($tmpstr == $signature)
{
    echo $_GET['echostr'];
    exit;
}
/************************************************验证token 结束********************************************************/

receiveMsg();
function receiveMsg(){
    //接收信息
    $postStr = $GLOBALS['HTTP_RAW_POST_DATA'];
    file_put_contents("/www/wwwroot/lfjj/1.txt",$postStr);
    if(!empty( $postStr )){
        libxml_disable_entity_loader(true);//防止外部实体加载
        //xml对象
        $xml = simplexml_load_string($postStr,"SimpleXMLElement",LIBXML_NOCDATA);
        //simplexml_load_string($xml_str, 'SimpleXMLElement', LIBXML_NOCDATA);
        file_put_contents("/www/wwwroot/lfjj/2.txt",$xml);
        //获取类型
        $msgType = $xml->MsgType;//	消息类型，event
        //获取发送方的微信号
        $FromUserName = $xml->FromUserName;
        //事件类型
        if($msgType == "event"){
            switch($xml->Event){
                case "subscribe":
                    $content = "欢迎关注四川票务网";
                    break;
                case "click":
                    switch($xml->EventKey){
                        case "callback":
                            $content = "回复#留言#+内容，我们将会收到您的消息，并尽快给您答复，或者拨打客服电话:(400-660-8787)谢谢您的支持！票务君的工作时间为:(09:00—17:30)";
                            break;
                        case "help":
                            $content = '回复“购票帮助”“支付帮助”“取票帮助”“退票帮助”，即可自助查询对应帮助信息。若需人工帮助，请致电客服电话400-660-8787（9:00-17:30）。时刻表查询、在线购票请：点击此处查询与购票；快速了解如何购票、取票、退票请：点击此处查看购票须知';
                            break;
                        case "state":
                            $content = '回复"城市名称+车站"(成都车站)，即可查询对应城市的联网车站。回复车站名称，即可查询相关车站的对应介绍';
                            break;
                        case "wether":
                            $content = '回复"城市名+天气"（如：成都天气），即可查询对应的城市天气';

                            break;
                        case "ticket":
                            $content = '发送地理位置,我们将为您推送离你最近的取票网点';
                            break;
                        case "order":
                            $content = '请输入要查询的订单号';
                            break;
                    }
                    break;
                    $contetnt = "点击事件";
                    break;
                case "unsubscribe":

                    break;
            }
            $result = $this->transmitText($xml,$content);
            // echo $result;
        }
    }
}
//输出格式
function transmitText($object,$content){
    //$text = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]>></MsgType><Content><![CDATA[%s]]></Content></xml>";
    //$txt = sprintf($text,$object->FromUserName, $object->ToUserName, time(), $content);
    $txt = 1654;
    file_put_contents('/www/wwwroot/lfjj/3.txt',$txt);
    echo $txt;
}
//接收响应事件
function response(){

}